Dynamic computer software for trading securities

ABSTRACT

The invention relates to a computer-implemented method of trading securities, a computer-readable medium carrying one or more sequences of instructions for trading securities, and a computer program product for use with a graphics display device. The program determines a reference price for the security, monitors the value of the security over time, and receives an input corresponding to a differential in the value of the security. A trigger price is determined for the security as a function of the differential and the reference price. The program liquidates the security after determining that the value of the security reaches or passes the trigger price in a first direction. After liquidating the security, the program automatically acquires at least one position in the security when the value of the security reaches or passes the trigger price in a second direction opposite to the first direction.

FIELD OF THE INVENTION

[0001] This invention relates to a computer implemented method, acomputer-readable medium carrying instructions, and a computer programproduct, all for trading securities.

BACKGROUND

[0002] Trading stock can be performed in a variety of ways. One way totrade stock is to hire a broker who will perform the transactions on theclient's behalf. Another manner to trade stock is to open an on-lineaccount and trade stock using an on-line program found on the Internet.A third way is to purchase a computer program that permits the user totrade stock through use of a brokerage service. These examples are justthree ways stock can be traded.

[0003] After a stock is purchased, the owner of the shares of stockusually desires to monitor the value of the shares. This is done in aneffort to both avoid a significant loss financially should the value ofthe stock decrease and to increase profit should the value of the stockincrease. In either case, once the stock is purchased, it is importantto know how the value of it fluctuates, if at all.

[0004] When trading long, a stock's value decreases, many owners of thestock desire to sell their shares in order to avoid losing more money inthe event that the stock's value continues to decline further. Once thestock is sold, either through a broker or through a computer program,the transaction is generally over. This means that if shares of stockare sold and then soon thereafter the stock's value increases to anamount where the individual may have wanted to repurchase the shares,the individual must instruct the computer program or broker to purchasea specific number of shares. Put another way, when the stock's valuerises, the computer program or broker generally will not automaticallyrepurchase shares that were previously sold. Thus, separate steps arerequired, both of which must be initiated by the individual. As aresult, the individual could not only lose money by selling the sharesof stock at a loss, but he could also fail to make money because he didnot repurchase the stock when the stock's value began to increase pasthis previously sold price.

[0005] When purchasing stock through the use of a computer, when theuser wishes to buy a stock, he or she generally instructs the programbeing used to buy the stock. The price at which the user is willing topurchase the shares of stock is referred to as the ask price. Then, ifthe user wishes to sell the stock he can do so, again by instructing thecomputer to do so. These buying and selling transactions are generallyperformed as two separate transactions, and the user must initiate both.There are at least three different methods to trade stock long, short,or both. Trading long occurs when an individual owns shares of stock andsells them later when the per share value has increased in price inorder to generate a profit. An investor who sells stock short borrowsshares from a brokerage house and sells them to another buyer. Proceedsfrom the sale go into the shorter's account. He must buy those sharesback (cover) at some point in time and return them to the lender. Whenan individual sells short, he is anticipating that the value per shareof stock is going to decrease which would result in his being able toearn a profit when he repurchases the shares and “returns” them to therightful owner.

[0006] When trading long, a user can instruct a computer program of thecurrent art to sell stock when the stock's value reaches a certaindesirable amount. The value of a stock at any given moment is known asthe bid price. However, once the stock is sold, the program no longermonitors the value of the stock that was just sold. As a result, if thestock was sold and declined in value, the user limited his loss byselling the stock. If however, the stock's value increased at least backto the price at which it was sold, the user essentially lost moneybecause he could have repurchased the stock as soon as the stock's valueequaled the price at which it was previous sold. Similar considerationsapply when stock is traded short.

[0007] Thus, there is the need for a computer program that continuouslymonitors the value per share of stock after shares are sold and thenautomatically repurchases the shares when the value of the shares justsold reaches a specified amount. In other words, there is a need for adynamic program for trading stock.

SUMMARY OF THE INVENTION

[0008] One aspect of the invention is a computer-implemented method oftrading a position in a security, such as a stock. The value of thesecurity is monitored by the associated computer program. Adetermination of a reference price for the security is made. An input isreceived which designates a differential for the computer to use whencalculating the trigger price; the trigger price is the value used toliquidate and acquire positions in a security. The program liquidates,or gets out of, a first position in the security when the value of thesecurity reaches or passes the trigger price moving in a firstdirection. After liquidating the first position, the program acquires,or gets into, a second position in the security when the value of thesecurity reaches or passes the trigger price moving in a seconddirection opposite to the first direction. The position acquired orliquidated depends on whether the user is trading long or short.

[0009] Another aspect of the invention is a computer-readable mediumcarrying one or more sequences of instructions for trading a position ina security. Execution of the one or more sequences of instructions byone or more processors causes the one or more processors to perform thesteps of monitoring the value of the security over time; determining areference price for the security; receiving an input corresponding to adeferential in the value of the security; determining a trigger pricefor the security as a function of the differential and the referenceprice; outputting instructions to liquidate a first position in thesecurity when the value of the security reaches or passes the triggerprice moving in a first direction; and outputting instructions toacquire a second position in the security when the value of the securityreaches or passes the trigger price moving in a second direction whichis opposite the first direction. The position acquired by liquidateddepends, of course, on whether the user is trading in the long or theshort market.

[0010] Yet another aspect of the invention is a computer program productfor use with a graphics display device. The computer program productcomprises a computer usable medium that has computer readable programcode. Included in the computer readable program code are meansmonitoring the value of the security over time; means determining areference price for the security; means for receiving an inputcorresponding to a deferential in the value of the security; means fordetermining a trigger price for the security as a function of thedifferential and the reference price; means for outputting instructionsto liquidate a first position in the security when the value of thesecurity reaches or passes the trigger price moving in a firstdirection; and means for outputting instructions to acquire a secondposition in the security when the value of the security reaches orpasses the trigger price moving in a second direction which is oppositethe first direction.

[0011] The invention thus is a dynamic computer software program andrelated media and systems, for trading a position in a security thatdoes not suffer the shortfalls of the prior art.

BRIEF DESCRIPTION OF THE DRAWINGS

[0012]FIG. 1 is one screen of the graphical user interface for theinvention.

[0013] FIGS. 2-6 are flow-charts representing the computer program.

[0014]FIG. 7 shows the different methods the inventive computer programuses to calculate statistics for the stock that was traded.

[0015]FIG. 8 shows the method for determining the trigger priceparameters.

[0016]FIG. 9 represents the steps the inventive program utilizes to buyor sell stock.

[0017]FIG. 10 is a block diagram representing a computer system.

DESCRIPTION OF THE PREFERRED EMBODIMENT

[0018] In general terms, the invention involves a computer-based systemwith suitable programming to allow a user to trade one or moresecurities in response to certain market conditions or at certain times.The securities traded by use of the invention can be of any marketabletype, such as, but not limited to, stocks, bonds, options, andderivatives. Thus, although the invention has been described herein withreference to the trading of stock, it is understood to pertain moregenerally to any type of marketable security.

[0019]FIG. 1 shows a graphical user interface for a computer program fordynamically trading stock. The program keeps track of the value of thestock in real time or near real time by interfacing with a suitabledatabase, stock quote service, computer, or other means for monitoringthe value of the stock. The program displays such information in field2400. The program also interfaces with suitable providers or services totrade the stock. The stock is selected preferably from a file listmaintained by the user or by entering the appropriate symbol in field2405. As shown in field 2403, the program keeps track of and displaysinformation related to the stock of interest, including the actual tradestatistics, the last trade, the next trade, and the status of thecurrent trade for the selected stock. The user can enter the number ofshares in field 2407 that he or she wants to monitor.

[0020] If the user wishes to trade in the selected stock, the programincludes suitable routines for allowing participation in trading long ortrading short. The appropriate routine is selected by checking thecorresponding box in field 2415 or 2417.

[0021] An important feature of the program is the so-called triggerprice, and the various programming routines and automatic tradingdecisions keyed off of the trigger price. In general terms, the triggerprice is calculated by taking a reference price and applying a change invalue, or a “differential,” to the reference price. The differential canbe either a set number of points or a percentage of the reference price.The reference price is the highest asking price when trading long andthe lowest bid price when trading short.

[0022] If the user chooses to trade long the user checks the box infield 2415 and then specifies the buy-sell trigger price parameters forlong positions 2411. Similar options are available for trading short infield 2413.

[0023] As explained in more detail below, the program uses the triggerprice calculated by the program during monitoring of the stock or stocksof interest. The program automatically initiates buying or selling ofshares in response to the market achieving such trigger price. Thetrigger price is adjustable by the user or through various programmingroutines, such as the reset options, explained in more detail below, andsuch programming routines are activated by selecting appropriate boxesin fields 2419 and 2421.

[0024] The program includes routines for the user to set up otherautomatic, dynamic trading events related to selected stocks. Forexample, the user is able to select the frequency at which the programchecks the various parameters that determine whether trading shouldoccur. This feature, referred to as the “trading time delay,” isconfigured using area 2423. In such area the user can specify the numberof hours and minutes for the trading time delay. The program monitorsthe market prices of the selected stock(s), but the program will notperform an indicated trade until the specified time has elapsed. By wayof example, this means that if an hour and a half has been specified bythe user in the appropriate areas of field 2423, such delay shall applybetween every transaction that the program would otherwise perform forthe stock(s) being monitored.

[0025] Area 2423 allows the user to specify exact times of day at whichtransactions are to be performed; such option is referred to as the“custom delay option.” For example, the user can specify in suitablelocations in the program to trade at 9:45 a.m., 11:30 a.m., 12:00 p.m.,12:15 p.m., and 3:15 p.m.

[0026] Specifying a trading time delay is optional. If no delay isspecified, the program will perform transactions upon demand or whenappropriate trading trigger price parameters have been satisfied,allowing the trading to occur automatically.

[0027] Some owners of stock prefer to trade outside the normal businesshours of the stock market. The program allows trading during suchextended hours by appropriate designations in area 2409.

[0028] In view of the foregoing, the computer program monitors the valueof a user's stock or stocks and has suitable programming to continuemonitoring such stock or stocks even after the regular market buying orselling has occurred. The user is able to select trigger prices eitheras a number of points or a percentage change, and such trigger pricesdetermine trading of the stocks, depending on what transactionspreviously occurred, as well as the direction the market has moved sincesuch previous transactions were made. As discussed above, the tradingresponse to the trigger price may be controlled or adjusted by the userby specifying trading time delay or by specifying the hours in which thetrades should occur (normal or extended hours).

[0029] The computer program includes various additional features for theuser to manage his or her stock portfolio. With reference to thegraphical user interface of FIG. 1, the user's portfolio can be revisedby selecting various buttons in decision field 2422, the function ofwhich is apparent by the labels on such buttons.

[0030] Similarly, this program permits various trading options to bespecified in the context of the trigger-price-driven trading discussedpreviously. For example, the user can select a price at which to enter aposition on a particular stock by assigning a purchase or sell shortprice for such stock either for trading long or short, respectively.Such price is designated by the user in the appropriate area of field2415 in trading long and 2417 for trading short, and is referred to as abuy limit or a short limit, respectively.

[0031] Another program feature, referred to as QuickFlip, activatessuitable routines in the program so that the trading strategy alternatesbetween trading long and trading short. The user activates this programfeature by selecting the corresponding box in field 2425.

[0032] Having described the features of the program with reference to anexemplary graphical user interface shown in FIG. 1, it will beappreciated that the program can be operated in a variety of differentmanners to manage stock portfolios in a variety of different ways,depending on the selections of the user, including the stock, thetrading options, the trigger price, the trading time delay, and thevarious other user-selectable options discussed previously. Thesevarious modes of operation are illustrated schematically with flowcharts in FIGS. 2-6. It will be appreciated by those skilled in theprogramming arts that the flow charts of FIGS. 2-6 are but one preferredembodiment for accomplishing the functions and features of the programfor dynamically trading stock.

[0033] Referring now to FIG. 2, the program includes suitable routinesshown by block 400 for determining whether to trade during normal hoursor extended hours. Once such a determination is made, the programincludes suitable routines, shown in decision block 500, for determiningwhether the appropriate amount of time, if any, has elapsed between thelast trade of the selected stock or stocks and the current date andtime. If not, as set forth in the programming blocks of decision block500, the program moves to the next stock or stock to be evaluated.

[0034] If the user-inputted parameters are such that it is time to lookat the selected stock for trading, the program proceeds to computerelement 1, and follows the logic tree or programming blocks shown inFIGS. 3A-3D. Again in general terms, as shown in FIGS. 3A-3D, theprogram checks to see whether the user wishes to participate in long orshort trading by entering the market at the current price (market price)of the stock or to begin trading by using the buy limit or short limitoption feature discussed previously.

[0035] The various programming steps for determining which tradingaction is to take place are detailed in decision areas 600, 700, 800,900, and 1000. In these decision areas, as will be detailedsubsequently, programming routines not only compare the trigger price tovarious ask and bid prices, but the trigger price is adjusted andrecalculated under certain circumstances, to enable the user to get backinto the market of a particular stock under advantageous conditions, asdetermined by the program.

[0036] If the user has selected the various parameters for participatingin trading long and for using a trigger price to determine selling andrepurchasing of stock, then the program will sell such a stock when itsprice decreases to the trigger price or below assuming that the stockwas previously bought. Significantly, the program continues to track thestock price that was sold in the above transaction and will repurchasesuch stock if its value increases to equal or exceed the trigger priceat the next trading time. The program repeats analogous actions afterthe stock was purchased to determine the need and time to sell. Thecontinued monitoring of the stock price after it has been continuouslybought and sold, and the subroutines that allow for repurchasing andselling of such stock when it meets or exceeds the trigger price,renders the stock-trading program dynamic.

[0037] The programming routines illustrated in FIGS. 2-6 includesubroutines which automatically adjust the trigger price originallyselected by the user, under certain conditions, and the trigger price isdetermined through program calculations using trading parameters, suchas those accessed through the graphical user interface in FIG. 1.

[0038] In the event that the user is not trading long, the program logiccontinues to perform the various subroutines shown in FIGS. 4A-4D, asindicated. The program determines whether the user has selected toparticipate in trading short, which selection the user would have madein area 2417 of the graphical user interface of FIG. 1. If so, theprogram makes use of bid and asking prices and compares such prices tothe inputted differential to be used when determining the trigger pricewhen participating in trading short in a manner similar to, butgenerally conversely to, the calculations performed with reference totrading long. Decision areas 1200, 1300, 1400, 1500, and 1600, and thecomputer programming blocks contained in such decision areas, correspondto various subroutines for evaluating the trigger price in relation tothe bid and asking price and, as a result of such evaluation,determining what, if any, trades should be made when trading short.

[0039] The program executes the various steps shown in FIGS. 5A-5D whenthe user has selected the QuickFlip option by checking the appropriatebox in the graphical user interface in area 2425 (FIG. 1). The QuickFlipoperations involve resetting certain parameters relating to the bid andask prices, as well as those related to the trigger price as shown inthe programming blocks of area 1900. Decision areas 1700, 1800, 2000,2100, and 2200 are involved in updating the various trading parametersto accomplish the alternating long and short trading positions of thisfeature. In particular, if the user is in a long position and the stockprice falls, which is an example of moving in a first direction, to thetrigger price, normally the stock is sold and the user is out of theposition. With QuickFlip activated, the user not only closes his longposition by selling the shares, but also immediately goes into a shortposition by selling short. The trading parameters that determine thetrigger price for both long and short positions are enabled because bothpositions are used and the trading time delay feature is also used asdescribed. This same type of scenario takes place for the conversion ofshort to long positions.

[0040] When QuickFlip is not selected, the program can be instructed tostop trading the stock or close the position of the stock (if currentlyin a position) by selecting either field 2427 or 2429, respectively, inthe graphical interface. FIG. 7 shows the programming steps that takeplace as a result of the user's selection of either field 2427 or 2429.

[0041] The calculations of the programs to cost average buy lots, costaverage sell lots, cost average short sell lots, and cost averagecovering lots are shown in computer programming blocks 304, 310, 316,and 322, respectively, of FIG. 6.

[0042] Having discussed the overall structure of the subroutines of thecomputer program, the corresponding computer operations are nowillustrated with the benefit of certain working examples orhypotheticals. Suppose a user purchases stock for $20.00 (in this case,the reference price), and wishes to sell it when the stock declines by 5points (the differential) to $15.00. Under such scenario, the triggerprice is $15.00, and the differential of 5 would be inputted into area2411 of the graphical user interface in FIG. 1. If, at the appropriatetrading time, the program determines that the stock price or value hasdecreased to less than or equal to $15.00 (in this case, the stock'svalue has moved in a first direction by decreasing), then the programwill automatically sell the stock at such value.

[0043] The program continues to monitor selected stocks, including theone sold in the hypothetical above, so that, if at the next trading timeits value has risen to, risen above, or maintained the $15.00 triggerprice (in this case, the stock's value has moved in a second directionby increasing or no longer decreasing), the program will automaticallyexecute instructions to repurchase the shares that were previously sold.This repurchasing feature allows the user to capture the increasingtrend of a stock and thus offset any previous losses by capturing gainsas the stock continues to rise beyond the 5-point spread, in thisexample. Optionally, the program can be modified so that the user hasthe option of repurchasing at least one share of the-stock instead ofrepurchasing the same number of shares previously sold.

[0044] When the trigger price is based on a percentage of the stockvalue, the calculations above are similar. For example, if the sellshort/cover trigger price parameter for short positions is 50% for astock valued at $20.00, then the stock will be sold when its valuedeclines to a trigger price of $10.00, which is 50% of the value atpurchase of $20.00. Then, in order for the stock to be repurchased, thestock must attain a value equal to or above the previously sold price(trigger price).

[0045] As seen from the above, the trigger price is used to both getinto, that is “acquire,” or get out of, that is “liquidate,” a stockposition whether such “value” is expressed when trading long or short.As such, although the user designates only the points or percentagedifference for a stock, such designation generates a trigger price forbuying and selling if the user is trading long, or selling short andcovering if the user is trading short.

[0046] Thus, the user specifies a differential in the value of the stockso that the program can determine the trigger price. When the value ofthe security reaches or passes the trigger price moving in a firstdirection, the program liquidates the first position in the stock. Asecond position in the stock is acquired when the value of the stockreaches or passes the trigger price moving in a second direction whichis opposite to the first direction.

[0047] If the user is trading long, the feature of adjusting orresetting the trigger price is activated when the stock's valueincreases beyond the price at which it was purchased by the user. Inother words, the program determines the highest asking price or “high”of a stock (the reference price) and uses such determination to resetthe trigger price accordingly. Referring back to the previous example,if the user has specified a 5-point “spread” for the trigger price, andthe stock purchased for $10.00 increased in value to $100.00 per share,then the recalculated trigger price would be based on the new stockvalue of $100.00 (the highest ask price), which would be 5 points downfrom such high, that is, $95.00 per share.

[0048] The determination of the reference price (not shown in thefigures), which is highest asking price or “high” of the stock whentrading long, can be updated with any suitable granularity, includingupdating daily, at intervals corresponding to the trade delay discussedpreviously, or continuously. It will be appreciated that one skilled inthe art can create suitable programming to vary the intervals at whichthe highest price for the stock is determined and/or the trigger priceis recalculated accordingly.

[0049] The program includes various other options to reset the triggerprice, including resetting the trigger price at the beginning of eachday based on the stock's asking price, varying the trigger price duringthe course of the day based on fluctuations of the stock's value, orother appropriate resetting options. The option of resetting the triggerprice at the beginning of each day allows the user to take advantage ofwhat is referred to as “Allow Daily Reset.” With “Allow Daily Reset,”the user can have the program automatically re-enter a stock position atthe start of a new trading day which he had been formally sold out of(or covered), at a time in the past, because the trigger price had beenreached. This is done by obtaining a new asking price (or bid if theuser is trading short), and getting into the position with a new triggerprice established by, but not limited to, the original tradingparameters. Bid and ask prices are both routinely obtained togethersince each are used by different subroutines in the program.

[0050] By way of example, when the user is in a long position, supposethe trigger price had been indicated by the user to be 5 points belowthe highest asking price. Suppose further that all shares of theassociated stock were sold the previous day when the trigger price was$20.00. Suppose still further that on the following day, the askingprice for such stock opened at $15.00, because its value continued tofall after the user's shares were sold at $20.00. If the daily reset ofthe trigger price option has been selected after the stock wasrepurchased, then the trigger price will be recalculated by taking theopening price of $15.00 less 5 points, making the trigger price $10.00.Under such a scenario, if the stock's value continues to fall from itsopening so that it decreases from $15.00 to $10.00, then the programwill sell the stock when the trigger price of $10.00 is achieved. Thisfeature allows the user to reenter the market after all shares have beensold, because the shares have fallen to a low enough value to warrantmarket reentry. It should be noted that the foregoing use of the triggerprice in trading long to reset the trigger price and repurchase sharesdoes not apply unless the user has previously exited the market and ownsno shares of the stock. In other words, in the preferred embodiment,when trading long, the reset trigger price option is used to reenter themarket after all the user's shares have been previously sold in adeclining market.

[0051] In staying with trading long, the program also includes suitableroutines to perform in accordance with the following hypothetical.Suppose the user specifies a 10% decrease from the highest asking priceas the “trigger price.” Under such hypothetical, suppose the userpurchases stock for $85.00 and its value increases over time. If thestock's asking price has increased to $250.00, the new trigger price isreset to be 10% less than the stock's value, in this case such triggerprice being $225.00.

[0052] The resetting of the trigger price in such an increasing marketfurther protects the user's gain from previous stock purchases.Referring back to the same hypothetical above, if the stock declinesfrom a reference price of $250.00 to a value below $225.00, then the 10%trigger price will be activated, resulting in sale of the stock. If,however, the stock had been previously purchased at $85.00, as set forthabove, then the user has still received gain from such sale, even thoughthe stock began decreasing in price. If the trigger price had not beenreset, but had remained at 10% down from the purchase price of $85.00,the user's gain would not have been realized.

[0053] The resetting of the trigger price continues for selected stockson a daily basis, and through the trigger-price driven tradingtransactions discussed above, seeks to avoid losses and protect gains ofthe user.

[0054] The program of the current invention calculates stock values,that is the ask and bid prices for stocks, and compares them to triggerprices for stocks when trading short in the same way as it does fortrading long described above, with suitable adjustments for the sellingshort and covering rules of trading short versus trading long. Forexample, instead of tracking the highest asking price, as in tradinglong, the lowest bid price is tracked in the short market.

[0055] The program can also include suitable routines that allow theuser to buy or sell short when the trigger price is between or equal tothe bid and the asking price. It also can include suitable routines thatthe user may sell or cover when the trigger price is between or equal tothe bid and ask prices. Additionally, suitable routines may also befound in the program to modify the trigger price calculations so thatthe trigger price becomes an order trade under the following scenarios:(1) after a user-specified gain has been reached; (2) when a stock'svalue reaches its 50 day, 100 day, or other moving averages; (3) when astock's value reaches a certain indicator such as Price/Earnings ratioor any other useable indicator utilized for trading stocks; (4) when aparticular trade volume has occurred whether or not in conjunction withother indicators or events such as price movement; and (5) before, on,or after a particular date, such as, but not limited to, the day acompany's earnings announcement has occurred. Furthermore, the user mayhave the option of directing the program to select whichever triggerprice calculation (1-5) occurs first.

[0056] The program includes suitable routines, set out schematically inFIGS. 2-6, for accomplishing trading during extended hours. Whenextended trading is to be used, there are no market orders for prices.The user puts in a limit order. He states the price in which he iswilling to buy or sell the stock and a third party states how much he orshe is willing to buy or sell the stock for. A company then matches upthe user and the third party so that the transaction can be completed.The user is able to select whether to trade only during extended hours.The program contacts a remote computer and has suitable interfaces toobtain the third-party information and to perform the trade.

[0057] The flow charts of FIGS. 2-6 correspond generally to the tradingtransactions in response to achieving trigger prices, as describedabove. Certain significant steps of the computer program in relation tosuch trading practices are now described with more detailed reference tothe flow charts and the computer programming steps schematically showntherein. The calculations for trading long are generally shown in FIG.3. The trigger price is generally calculated in computer blocks 84-89 indecision area 800 and in computer block 70 in decision area 900.

[0058] When the hold trigger price is not selected 78, area 2419, theprogram determines whether to get the bid and ask prices by performingthe steps found in decision block 900. However, when long daily reset 90located in area 2419 is selected and the user currently owns stock 94,the program proceeds through blocks 86 and 88, and then either throughdecision block 700 or 800. If the user does not currently own stock andthe selected stock has not been traded yet today 96 then the programproceeds to block 42. If the stock has been traded today, then the olddate equals today's date, the trigger price is for a new stock 98, andthe program proceeds to block 42.

[0059] At block 42, the program determines whether the trigger price isfor a new stock. If the trigger price is not for new stock, the programproceeds through the steps found in decision block 1000, where the stockis either traded or the next stock is looked at. Otherwise, if thetrigger price is for a new stock, the program proceeds through decisionblock 600.

[0060] In decision block 600, shares of stock are bought 56 and thetrade statistics are calculated. The program recalculates the triggerprice at block 70. This permits the trigger price to vary throughout theday. In other words, allow daily reset was selected in area 2421. Eitherthe “Allow Daily Reset” or the “Hold trigger price” in area 2421 can beselected in order for the trigger price to be adjusted when the price ofstock rises.

[0061] However, if buy market is not selected 26 but buy limit isselected 28, in area 2415, and the buy limit price is for a traded stock32, the program proceeds to block 78 to determine whether the userselected to hold the trigger price, area 2419. After block 78, theprogram continues to either decision block 800 or 900.

[0062] In decision block 800, when the user currently owns shares of thestock to be traded, the program obtains the ask and bid prices andproceeds to either decision block 700 or computer block 64 depending onwhether the bid price is less than or equal to the trigger price 88. Thestock is sold and statistics are calculated in decision block 700 movingalong to the next stock. The trigger price is reset in block 64.Alternatively, if the user does not currently own shares of stock 82 indecision block 800, the program proceeds to block 42.

[0063] If decision block 900 is executed by the program and the user hasselected long daily reset 90, area 2419, and currently owns the stock tobe traded 94, the program proceeds to block 84 and either sells or keepsthe stock. But, when the user does not currently own the stock to betraded 94, after performing the steps in block 96 and/or block 98, theprogram continues to block 42.

[0064] As mentioned above, the short market portion of the program shownin FIG. 4 works similarly to the buy market portion of the programexcept that the short market portion tracks the lowest bid (thereference price), not the highest ask. The difference in the shortmarket portion is that the program tracks the current market bid priceof the stock until the program calculated trigger price is reached orsurpassed in the positive direction. When this occurs, the program takesthe user out of the position by covering the stock. Referencing FIG. 4,which is a flowchart of the short market portion of the program,decision block 1600 is analogous to decision block 900 of FIG. 3 and theprogram determines whether the stock has already been traded on the dayit is to be traded; decision block 1100 is analogous to decision block800; decision block 1200, where the bid/asking prices are obtained andanalyzed, is analogous to decision block 600; decision block 1300 isanalogous to decision block 700; decision block 1400 where the shortstock is covered is analogous to decision block 1000; and computer block189 a is analogous to computer block 64 and the trigger price isrecalculated.

[0065] As mentioned previously, the QuickFlip feature allows the programto alternate its trading strategy, i.e., from long to short, short tolong, etc. If the user established a long position and a trigger priceis reached, the program ends the user's long position and automaticallyputs the user in a short position. After the trigger price for the shortposition is reached and stock is traded, the program automatically putsthe user in a long position. This cycle continues until the userdeactivates the QuickFlip option.

[0066] The particular program steps are detailed with reference to FIG.5, in which the user has the option of selecting QuickFlip 206, field2415. When QuickFlip is selected by the user in field 2415, decisionblock 1900 is followed first. In decision block 1900, the trading hoursare analyzed. If the stock is to be traded during regular market hours,the program then proceeds from block 210 to block 220.

[0067] The program determines whether the trigger price is for a newstock, block 220. After setting the values found in block 210, decisionblock 2000 is performed if the trigger price is not for a new stock.

[0068] Decision block 2000 is performed if the trigger price is not fora new stock. Decision block 1700 is performed if the trigger price isfor a new stock that the user wants to start trading long and 1800 for anew stock that the user wants to start trading.

[0069] Returning to decision block 2000, if the stock is currently owned222, the program moves along to decision block 2100 to determine whethermarket conditions warrant selling the stock. In decision block 2100,either the stock is sold short or no sale occurs and the programproceeds to the next stock 278. In another scenario, when the shares ofstock are currently being neither bought 222 nor sold 224, but soldshort 226, decision block 2200 is next. In decision block 2200, thestock is covered 286 and bought 292, or the stock is not traded in theevent that the trigger price is higher than the asking price 284, priorto advancing to the next stock 302.

[0070] Alternatively, if decision block 1700 is performed, when the userhas selected to trade stock long, the program proceeds to buy the stock240 and calculate the statistics of the trade 242, 244, 246, 248 beforethe next stock is looked at 260. Or, should the user have decided totrade stock short 234 instead of trading stock long 232, decision block1800 is executed. In decision block 1800, stock is sold short 252 andthe statistics of the trade are calculated 254, 256, 258. The programthen moves to the next stock to be traded 260.

[0071] In decision block 2100, if stock is currently being bought 222,the program will get the bid 262. When the bid is less than or equal tothe trigger price 268, the program proceeds to sell stock 270, sells itshort 273, and the last trade price equals the actual ask price 277. Theprogram then proceeds to the next stock 278. However, after getting thebid 262, if the bid is not less than or equal to the trigger price 268,the program proceeds to the next stock 278.

[0072] When moving to the next stock 230, 248, 260, 278, 302 the programgoes to block AA 4, found in FIG. 2, which is the beginning of theprogram.

[0073] For decision block 2200, if at block 226, the stock is currentlybeing sold short, the program gets the asking price 280. The stock iscovered 286 and purchased 292 when the asking price is greater than orequal to the trigger price 284. The last trade price will equal theactual buy price 300 and the program examines the next stock 286. But,if the ask price is not greater than or equal to trigger price, theprogram moves onto the next stock 302. Again, this means that theprogram proceeds to AA 4.

[0074] Regarding decision block 1700, should the trigger price be fornew stock 220, the program looks to see if the user has selected tobegin trading long 232. If this option is selected, the program gets theasking price 238 and buys the stock 240. Next, the statistics arecalculated 242, 244, 246. After calculating the statistics, the programproceeds to the next stock 248.

[0075] If begin long trading 232 is not selected, and begin tradingshort is selected 234, the program proceeds to get the bid 250 and sellthe stock short 252, as found in decision block 1800. The statistics arethen calculated 254, 256, 258. The program then moves onto the nextstock 264. An error message 236 will appear if the user has not selectedto begin trading long and also has not selected to begin trading short.

[0076] When the user has not selected QuickFlip, the user has toinstruct the program to either stop trading the stock, field 2427, orimmediately close out the stock position if currently holding aposition, field 2429. FIG. 6 is the schematic representation of how theprogram proceeds according to the user's instructions.

[0077] If the user chooses to immediately trade the stock, decisionblock 2250 is followed. In decision block 2250, the stock is either soldS, covered CS, or neither, i.e., the program moves along to the nextstock 406.

[0078] Alternatively, if the user selected to have the program stoptrading the stock 408, the program proceeds to the next stock 410.Should the user fail to instruct the program by not making a selectionin either fields 2427 or 2429, an error message 412 will appear.

[0079] When a user owns more than one share of one stock, he has theoption of selling the stock in lots over time or selling the stock allat once 58, 102. The user may also have the option of not trading any ofthe shares.

[0080]FIG. 7 shows schematically how the program trades stocks in lots.The lots are calculated by either cost averaging buy lots 304, costaveraging sell lots 310, cost averaging short sell lots 316, or costaveraging short covering lots 322. After calculating the appropriatevalues, the program either proceeds to block 108 or 190 depending onwhat portion of the program the cost average lots are being calculatedfor.

[0081] The program can either cost average buys/sells or shortsells/cover. This works in either of two ways. In the first way, theprogram sets up new screens for a specified number of the shares foreach screen. The trigger price is adjusted to reflect the sharesassociated with the corresponding screens. In the second way, theprogram averages the prices and bundles the prices back to the amount ofshares that were sold.

[0082] For example, suppose a user wants to sell 100 shares of stock.Fifty shares are sold for $172.00 per share, thirty shares for $171.98,and twenty shares for $171.95. Using the first method, the program hasthree separate screens for the corresponding amount of shares: Fifty,thirty, and twenty shares. Using the second method, the program groupsall of the 100 shares back together and averages the cost so that itwould be $171.98 per share, allowing only one screen to be needed.

[0083] Blocks 70 and 192, in FIGS. 3 and 4, respectively, determine thetrigger price parameters for long and short positions, respectively.FIG. 8 shows the method the program uses to calculate these parameters.

[0084] In FIGS. 3-5, stock is bought and sold. A detailed description ofthe procedure used to perform the steps of buying and selling stockappears in FIG. 9.

[0085]FIG. 10 is a block diagram that illustrates a computer system 2300upon which an embodiment of the invention may be implemented. Computersystem 2300 includes a bus 2302 or other communication mechanism forcommunicating information and a processor 2304 coupled with bus 2302 forprocessing information. Computer system 2300 also includes a main memory2306, such as a random access memory (RAM) or other dynamic storagedevice, coupled to bus 2302 for storing information and instructions tobe executed by processor 2304. Main memory 2306 also may be used forstoring temporary variable or other intermediate information duringexecution of instructions to be executed by processor 2304. Computersystem 2300 further includes a read only memory (ROM) 2308 or otherstatic storage device coupled to bus 2302 for storing static informationand instructions for processor 2304. A storage device 2310, such as amagnetic disk or optical disk, is provided and coupled to bus 2302 forstoring information and instructions.

[0086] Computer system 2300 may be coupled via bus 2302 to a display2312, such as a cathode ray tube (CRT), for displaying information to acomputer user. An input device 2314, including alphanumeric and otherkeys, is coupled to bus 2302 for communicating information and commandselections to processor 2304. Another type of user input device iscursor control 2316, such as a mouse, a trackball, or cursor directionkeys for communicating direction information and command selections toprocessor 2304 and for controlling cursor movement on display 2312. Thisinput device typically has two degrees of freedom in two axes, a firstaxis (e.g., x) and a second axis (e.g., y), that allows the device tospecify positions in a plane.

[0087] According to one embodiment of the invention, trading stock isprovided by computer system 2300 in response to processor 2304 executingone or more sequences of one or more instructions contained in mainmemory 2306. Such instructions may be read into main memory 106 fromanother computer-readable medium, such as storage device 2310. Executionof the sequences of instructions contained in main memory 2306 causesprocessor 2304 to perform the process steps described herein. One ormore processors in a multi-processing arrangement may also be employedto execute the sequences of instructions contained in main memory 2306.In alternative embodiments, hard-wired circuitry may be used in place ofor in combination with software instructions to implement the invention.Thus, embodiments of the invention are not limited to any specificcombination of hardware circuitry and software.

[0088] The term “computer-readable medium” as used herein refers to anymedium that participates in providing instructions to processor 2304 forexecution. Such a medium may take many forms, including, but not limitedto, non-volatile media, volatile media, and transmission media.Non-volatile media include, for example, optical or magnetic disks, suchas storage device 2310. Volatile media include dynamic memory, such asmain memory 2306. Transmission media include coaxial cables, copperwire, and fiber optics, including the wires that comprise bus 2302.Transmission media can also take the form of acoustic or light waves,such as those generated during radio frequency (RF) and infrared (IR)data communications. Common forms of computer-readable media include,for example, floppy disk, a flexible disk, hard disk, magnetic tape, andother magnetic medium, a CD-ROM, DVD, any other optical medium, punchcards, paper tape, any other physical medium with patterns of holes, aRAM, a PROM, an EPROM, a FLASHEPROM, any other memory chip or cartridge,a carrier wave as described hereinafter, or any other medium from whicha computer can read.

[0089] Various forms of computer-readable media may be involved incarrying one or more sequences of one or more instructions to processor2304 for execution. For example, the instructions may initially be borneon a magnetic disk of a remote computer. The remote computer can loadthe instructions into its dynamic memory and send the instructions overa telephone line using a modem. A modem local to computer system 2300can receive the data on the telephone line and use an infraredtransmitter to convert the data to an infrared signal. An infrareddetector coupled to bus 2302 can receive the data carried in theinfrared signal and place the data on bus 2302. Bus 2302 carries thedata to main memory 2306, from which processor 2304 retrieves andexecutes the instructions. The instructions received by main memory 106may optionally be stored on storage device 2310 either before or afterexecution by processor 2304.

[0090] Computer system 2300 also includes a communication interface 2318coupled to bus 2302. Communication interface 2318 provides a two-waydata communication coupling to a network link 2320 that is connected toa local network 2322. For example, communication interface 2318 may bean integrated services digital network (ISDN) card or a modem to providea data communication connection to a corresponding type of telephoneline. As another example, communication interface 2318 may be a localarea network (LAN) card to provide a data communication connection to acompatible LAN. Wireless liiks may also be implemented. In any suchimplementation, communication interface 2318 sends and receiveselectrical, electromagnetic, or optical signals that carry digital datastreams representing various type of information.

[0091] Network link 2320 typically provides data communication throughone or more networks to other data devices. For example, network link2320 may provide a connection through local network 2322 to a hostcomputer 2324 or to data equipment operated by an Internet ServiceProvider (ISP) 2326. ISP 2326 in turn provides data communicationservices through the worldwide packet data communication network, nowcommonly referred to as the “Internet” 2328. Local network 2322 andInternet 2328 both use electrical electromagnetic, or optical signalsthat carry digital data streams. The signals through the variousnetworks and the signals on network link 2320 and through communicationinterface 2318, which carry the digital data to and from computer system2300, are exemplary forms of carrier waves transporting the information.

[0092] Computer system 2300 can send messages and receive data,including program codes, through the network(s), network link 2320, andcommunication interface 2318. In the Internet example, a server 2330might transmit a requested code for an application program throughInternet 2328, ISP 2326, local network 2322, and communication interface2318. In accordance with the invention, one such downloaded applicationprovides for trading stock as described herein.

[0093] The received code may be executed by processor 2304 as it isreceived, and/or stored in storage device 2310, or other non-volatilestorage for later execution. In this manner, computer system 2300 mayobtain an application code in the form of a carrier wave.

[0094] The program can be modified so that the user specifies how muchmoney he is willing to spend to purchase shares of stock. Suitableprogramming routines can monitor the money available to purchase stock,and if the available money decreases to an amount below that which isneeded to purchase the desired number of shares, the user has the optionto either not buy the shares or have the program purchase the greatestnumber of shares possible.

[0095] Another modification would be to have the program interface withat least one commercially available data source on the Internet todownload stocks that either are the “most up” in the first few minutesof trading, have the greatest price movement together with high tradingvolume, or have any other desirable indicators, or combination ofindicators that the program could use to automatically select aparticular stock. The program could have suitable programming to findthe stock with the “best fit” for the request and automatically add itto the user's stock portfolio and trade it based on the parameters setforth on the graphical user interface.

[0096] A further modification can allow the program to suggest minimum“Points Up,” “Points Down,” “Percent Up,” or “Percent Down” values inthe trading parameters to decrease the number of potential trades.Suitable programming routines can calculate the difference in pricebetween the bid and ask prices. A multiple of this difference in pricescan be the suggested values. By suggesting this value, the trigger pricewill not be between the bid and ask prices when the program beginstrading a stock.

[0097] Still, another modification to the program allows the program toautomatically close out a previously selected (by the user or otherpredefined computer assisted parameter) position that is currently beingtraded in order to use money obtained by selling those shares topurchase a preselected (with defined trading parameters) stock when auser-specified condition occurs. For example, a user could direct theprogram to sell his shares of Intel stock and buy shares of Microsoftstock when the value of Microsoft stock decreases to $40.00.

[0098] The program can also be modified to run hypothetical predefinedtrading parameters. Such hypothetical predefined trading parameters mayuse historical data of price movements for a particular stock andcompare the results against each other as well as the actual historicalresult. For instance, the changes in price for Intel stock from lastyear can be used for a hypothetical. The data obtained can be used torun the program while hold trigger price is selected. Next, the data canbe run through the program when allow daily rent is selected and thenwhen QuickFlip is selected for the same period to see which selectionyielded a better return. The user can then compare the results obtainedto the actual historical yield.

[0099] It is understood that the above-described embodiment has beenpresented for the purposes of illustration and description of thepresent invention. Alternative embodiments may be devised by those ofordinary skill in the art. Such alternatives, as well as others whichskill or fancy may suggest, are considered to fall within the scope ofthe current invention, which is solely defined by the claims appendedhereto.

What is claimed is:
 1. A computer-implemented method of trading aposition in a security, comprising the steps of: monitoring the value ofthe security over time; determining a reference price for the security;receiving an input corresponding to a differential in the value of thesecurity; determining a trigger price for the security as a function ofthe differential and the reference price; outputting instructions toliquidate a first position in the security when the value of thesecurity reaches or passes the trigger price moving in a firstdirection; outputting instructions to acquire a second position in thesecurity when the value of the security reaches or passes the triggerprice moving in a second direction, the second direction being oppositethe first direction.
 2. The computer-implemented method of claim 1,wherein the position is long or short.
 3. The computer-implementedmethod of claim 1, wherein the security is stock, bonds, options, orderivatives.
 4. The computer-implemented method of claim 1, furthercomprising the step of first acquiring a position in the security. 5.The computer-implemented method of claim 1, further comprising the stepof automatically resetting said trigger price as the value of thesecurity fluctuates.
 6. The computer-implemented method of claim 1,wherein either or both of the steps of outputting instructions isdelayed by a time specified by a user.
 7. The computer-implementedmethod of claim 1, further comprising the step of calculating statisticsfor each security traded.
 8. The computer-implemented method of claim 1,wherein the step of outputting instructions to liquidate a firstposition in the security occurs when a user's gain reaches a specifiednumber or dollars.
 9. The computer-implemented method of claim 1,wherein the security is traded in lots over time or all at once.
 10. Thecomputer-implemented method of claim 1, wherein the security is tradedduring extended hours.
 11. The computer-implemented method of claim 1,wherein the security is traded long and short in alternating fashion.12. A computer-implemented method of claim 1, wherein the trigger priceis between or equal to a bid price and an ask price.
 13. Thecomputer-implemented method of claim 1, wherein the trigger price ismodified so that the trigger price becomes an order trade.
 14. Thecomputer-implemented method of claim 1, further comprising the step of,after the step of outputting instructions to liquidate a first positionin the security, automatically acquiring at least one share of apre-selected security when a user-specified condition occurs.
 15. Thecomputer-implemented method of claim 1, wherein the security is tradedhypothetically.
 16. A computer-implemented method of trading a positionin a stock, comprising the steps of: monitoring the value of the stockover time; determining a reference price for the stock; receiving aninput corresponding to a differential in the value of the stock;determining a trigger price for the stock as a function of thedifferential and the reference price; outputting instructions toliquidate a first position in the stock when the value of the stockreaches or passes the trigger price moving in a first direction;outputting instructions to acquire a second position in the stock whenthe value of the stock reaches or passes the trigger price moving in asecond direction, the second direction being opposite the firstdirection.
 17. A computer-readable medium carrying one or more sequencesof instructions for trading a position in a security, wherein executionof the one or more sequences of instructions by one or more processorscauses the one or more processors to perform the steps of: monitoringthe value of the security over time; determining a reference price forthe security; receiving an input corresponding to a differential in thevalue of the security; determining a trigger price for the security as afunction of the differential and the reference price; outputtinginstructions to liquidate a first position in the security when thevalue of the security reaches or passes the trigger price moving in afirst direction; outputting instructions to acquire a second position inthe security when the value of the security reaches or passes thetrigger price moving in a second direction, the second direction beingopposite the first direction.
 18. The computer-readable medium of claim17, wherein the position is long or short.
 19. The computer-readablemedium of claim 17, wherein the security is stock, bonds, options, orderivatives.
 20. The computer-readable medium of claim 17, furthercomprising the step of first acquiring a position in the security. 21.The computer-readable medium of claim 17, further comprising the step ofautomatically resetting said trigger price as the value of the securityfluctuates.
 22. The computer-readable medium of claim 17, wherein eitheror both of the steps of outputting instructions is delayed by a timespecific by a user.
 23. The computer-readable medium of claim 17,further comprising the step of calculating statistics for each securitytraded.
 24. The computer-readable medium of claim 17, wherein the stepof outputting instructions to liquidate a first position in the securityoccurs when a user's gain reaches a specified number or dollars.
 25. Thecomputer-readable medium of claim 17, wherein the security is traded inlots over time or all at once.
 26. The computer-readable medium of claim17, wherein the security is traded during extended hours.
 27. Thecomputer-readable medium of claim 17, wherein the security is tradedlong and short in alternating fashion.
 28. The computer-readable mediumof claim 17, wherein the trigger price is between or equal to a bidprice and an ask price.
 29. The computer-readable medium of claim 17,wherein the trigger price is modified so that the trigger price becomesan order trade.
 30. The computer-readable medium of claim 17, furthercomprising the step of, after the step of outputting instructions toliquidate a first position in the security, automatically acquiring atleast one share of a pre-selected security when a user-specifiedcondition occurs.
 31. The computer-readable medium of claim 17, whereinthe security is traded hypothetically.
 32. A computer-readable mediumcarrying one or more sequences of instructions for trading a position ina stock, wherein execution of the one or more sequences of instructionsby one or more processors causes the one or more processors to performthe steps of: monitoring the value of the stock over time; determining areference price for the stock; receiving an input corresponding to adifferential in the value of the stock; determining a trigger price forthe stock as a function of the differential and the reference price;outputting instructions to liquidate a first position in the stock whenthe value of the stock reaches or passes the trigger price moving in afirst direction; outputting instructions to acquire a second position inthe stock when the value of the stock reaches or passes the triggerprice moving in a second direction, the second direction being oppositethe first direction.
 33. A computer program product for use with agraphics display device, said computer program product comprising acomputer usable medium having computer readable program code means formonitoring the value of a security over time; determining a referenceprice for the security; receiving an input corresponding to adifferential in the value of the security; determining a trigger pricefor the security as a function of the differential and the referenceprice; outputting instructions to liquidate a first position in thesecurity when the value of the security reaches or passes the triggerprice moving in a first direction; outputting instructions to acquire asecond position in the security when the value of the security reachesor passes the trigger price moving in a second direction, the seconddirection being opposite the first direction.
 34. The computer programproduct of claim 33, wherein the position is long or short.
 35. Thecomputer program product of claim 33, wherein the security is stock,bonds, options, or derivatives.
 36. The computer program product ofclaim 33, further comprising means for first acquiring a position in thesecurity.
 37. The computer program product of claim 33, furthercomprising means for automatically resetting said trigger price as thevalue of the security fluctuates.
 38. The computer program product ofclaim 33, wherein either or both of the means for outputtinginstructions is delayed by a time specific by a user.
 39. The computerprogram product of claim 33, further comprising means for calculatingstatistics for each security traded.
 40. The computer program product ofclaim 33, wherein the means for outputting instructions to liquidate afirst position in the security occurs when a user's gain reaches aspecified number or dollars.
 41. The computer program product of claim33, wherein the security is traded in lots over time or all at once. 42.The computer program product of claim 33, wherein the security is tradedduring extended hours.
 43. The computer program product of claim 33,wherein the security is traded long and short in alternating fashion.44. The computer program product of claim 33, wherein the trigger priceis between or equal to a bid price and an ask price.
 45. The computerprogram product of claim 33, wherein the trigger price is modified sothat the trigger price becomes an order trade.
 46. The computer programproduct of claim 33, further comprising the step of, after outputtinginstructions to liquidate a first position in the security,automatically acquiring at least one share of a pre-selected securitywhen a user-specified condition occurs.
 47. The computer program productof claim 33, wherein the security is traded hypothetically.
 48. Acomputer program product for use with a graphics display device, saidcomputer program product comprising a computer usable medium havingcomputer readable program code for monitoring a value of a stock overtime; determining a reference price for the stock; receiving an inputcorresponding to a differential in the value of the stock; determining atrigger price for the stock as a function of the differential and thereference price; outputting instructions to liquidate a first positionin the stock when the value of the stock reaches or passes the triggerprice moving in a first direction; outputting instructions to acquire asecond position in the stock when the value of the stock reaches orpasses the trigger price moving in a second direction, the seconddirection being opposite the first direction.